//
//  DebugViewController.swift
//  Example
//
//  Created by T AO on 2022/2/10.
//

import UIKit
import RxSwift

class DebugViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

//        debug()
        total()
    }

}

extension DebugViewController {
    /// debug
    /// 添加到一个链式步骤当中，这样系统就能将所有的订阅者、事件、和处理等详细信息打印出来，方便我们开发调试
    /// 可以传入标记参数，这样当项目中存在多个 debug 时可以很方便地区分出来
    private func debug() {
        Observable.of("2", "3")
            .startWith("1")
            .debug("调试")
            .subscribe(onNext: { print($0) })
            .disposed(by: disposeBag)
    }
    
    /// RxSwift.Resources.total
    /// 可以查看当前 RxSwift 申请的所有资源数量。这个在检查内存泄露的时候非常有用
    private func total() {
        print(RxSwift.Resources.total)
        
        Observable.of("BBB", "CCC")
            .startWith("AAA")
            .subscribe(onNext: { print($0) })
            .disposed(by: disposeBag)
        
        print(RxSwift.Resources.total)
    }
}
